package com.exam.config;

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

@MapperScan("com.exam.mapper")
@Configuration
public class MybatisPlusConfig {
    /**
     * 分页插件
     *
     * @return PaginationInterceptor 对象
     */
    // 注册分页插件
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        // 创建分页插件对象
        return new PaginationInterceptor();
    }



    /**
     * SQL执行效率插件
     *
     * @return 返回PerformanceInterceptor对象，用于拦截SQL执行并监控其效率
     */
    // 定义一个Bean，用于创建PerformanceInterceptor对象
    @Bean
    // 设置在dev和test环境下启用该Bean
    @Profile({"dev", "test"})//  设置 dev test 环境开启
    public PerformanceInterceptor performanceInterceptor() {
        // 创建PerformanceInterceptor对象
        PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
        // 设置sql执行的最大时间为1000毫秒，如果超过了则不执行
        performanceInterceptor.setMaxTime(1000);// ms 设置sql执行的最大时间,如果超过了则不执行
        // 设置格式化输出
        performanceInterceptor.setFormat(true);
        // 返回创建好的PerformanceInterceptor对象
        return performanceInterceptor;
    }
}
